package accounting;

import java.io.Serializable;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import users.Usuario;
import java.util.Date;


/**
 * The persistent class for the gasto database table.
 * 
 */
@Entity
@Table(name="gasto")
@NamedQueries({
    @NamedQuery(name = "Gasto.findAll", query = "SELECT g FROM Gasto g"),
    @NamedQuery(name = "Gasto.findByIdgasto", query = "SELECT g FROM Gasto g WHERE g.idgasto = :idgasto"),
    @NamedQuery(name = "Gasto.findByFecha", query = "SELECT g FROM Gasto g WHERE g.fecha = :fecha"),
    @NamedQuery(name = "Gasto.findByMoneda", query = "SELECT g FROM Gasto g WHERE g.moneda = :moneda"),
    @NamedQuery(name = "Gasto.findByNumFac", query = "SELECT g FROM Gasto g WHERE g.numFac = :numFac")})
public class Gasto implements Serializable {
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
    @Basic(optional = false)
    @NotNull
    @Column(name = "idgasto")
    private Integer idgasto;
	@Basic(optional = false)
    @NotNull
    @Column(name = "fecha")
    @Temporal(TemporalType.DATE)
    private Date fecha;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 45)
    @Column(name = "concepto")
    private String concepto;
    @Basic(optional = false)
    @NotNull
    @Column(name = "moneda")
    private boolean moneda;
    @Basic(optional = false)
    @NotNull
    @Column(name = "monto")
    private float monto;
    @Size(max = 45)
    @Column(name = "numFac")
    private String numFac;
    @Size(max = 45)
    @Column(name = "detalle")
    private String detalle;
	private Usuario user;

    public Gasto() {
    }

    public Gasto(Integer idgasto, Date fecha, String concepto, boolean moneda, float monto) {
        this.idgasto = idgasto;
        this.fecha = fecha;
        this.concepto = concepto;
        this.moneda = moneda;
        this.monto = monto;
    }
	
	public Integer getIdgasto() {
		return this.idgasto;
	}

	public void setIdgasto(Integer idgasto) {
		this.idgasto = idgasto;
	}


	public String getConcepto() {
		return this.concepto;
	}

	public void setConcepto(String concepto) {
		this.concepto = concepto;
	}


	public String getDetalle() {
		return this.detalle;
	}

	public void setDetalle(String detalle) {
		this.detalle = detalle;
	}


	public Date getFecha() {
		return this.fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}


	public boolean getMoneda() {
		return this.moneda;
	}

	public void setMoneda(boolean moneda) {
		this.moneda = moneda;
	}


	public float getMonto() {
		return this.monto;
	}

	public void setMonto(float monto) {
		this.monto = monto;
	}


	public String getNumFac() {
		return this.numFac;
	}

	public void setNumFac(String numFac) {
		this.numFac = numFac;
	}


	//uni-directional many-to-one association to Usuario
    @ManyToOne
	@JoinColumn(name="usuario")
	public Usuario getUser() {
		return this.user;
	}

	public void setUser(Usuario user) {
		this.user = user;
	}
	
}